package com.zzu.model.service;

import com.zzu.model.bean.User;

import okhttp3.ResponseBody;
import retrofit2.Call;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.GET;
import retrofit2.http.POST;
import retrofit2.http.Path;

/**
 * @ClassName UserService
 * @Description TODO
 * @Author ZB
 * @Date 2021/5/5 19:33
 * @Version 1.0
 **/
public interface UserService {

    /**
     * 登录验证
     * @param tel 手机号作为用户名
     * @param password 密码
     * @return 用户名和密码匹配返回true，否则返回false
     */
//    @PostMapping(value="/ifPermittedLogin",produces = {"application/json;charset=utf-8"})
//    boolean ifPermittedLogin(@RequestParam String tel,@RequestParam String password);

    //登录验证是否合法，,服务器返回true或false
    @POST("userService/ifPermittedLogin")
    @FormUrlEncoded//定义post提交的类型，表单类型
    Call<Boolean> ifPermittedLogin(@Field("tel") String tel,@Field("password") String password);


    //注册用户

//    @PostMapping("/register")
//    void register(@RequestParam("id") Long id, @RequestParam("password")String password,@RequestParam("name")String name,
//                  @RequestParam("role")int role,@RequestParam("status")int status,@RequestParam("tel") String tel,
//                  @RequestParam("transNodeId") Long transNodeId);


    /**
     * 通过手机号验证用户是否存在，手机号不可重复
     * @param tel
     * @return 存在返回true
     */
    //通过手机号验证用户是否存在，手机号不可重复,服务器返回true或false
    @GET("userService/checkIfUserExistByTel/{tel}")
    Call<Boolean> checkIfUserExistByTel(@Path("tel") String tel);

    //通过手机号验证用户是否存在，手机号不可重复

    /**
     * 注册用户
     * @param id 自增id，建议传入空值（例如id:""，不能传null，null会被认为是一个字符串）
     * @param password
     * @param name 用户姓名：张三
     * @param role 用户角色，0代表普通用户，1代表员工
     * @param status 登录状态，0表示未登录，1表示当前帐户已经登录
     * @param tel 手机号
     * @param transNodeId 员工属于哪个转运节点，如果是普通用户，该字段可以不填（传入空值）
     */
    //注册员工,idrole为1,status=0，没有返回值
    @POST("userService/register")
    @FormUrlEncoded//定义post提交的类型，表单类型
    Call<ResponseBody> register(@Field("id") String id,@Field("password") String password,@Field("name") String name,
                                @Field("role") int role,@Field("status") int status,@Field("tel") String tel,
                                @Field("transNodeId") String transNodeId);


//    @GetMapping("getUserByTel/{tel}")
//    String getUserByTel(@PathVariable String tel);
    //通过电话号码查询用户的信息
    @GET("userService/getUserByTel/{tel}")
    Call<User> getUserByTel(@Path("tel") String tel);

}
